package dice.sinanya.entity.imal;

import static dice.sinanya.tools.makedata.StringFormatById.stringFormatById;

/**
 * @author SitaNya
 * 日期: 2019-08-12
 * 电子邮箱: sitanya@qq.com
 * 维护群(QQ): 162279609
 * 有任何问题欢迎咨询
 * 类说明:
 */
public enum AlgorithmTypes {
    /**
     * Expect 平均算法，默认算法方式
     * Default Java默认算法
     * Mersenne 梅森旋转算法
     */
    Expect(1, "符合预期算法，如骰掷1-100时，尽可能保证1-5的可能性是5%"),
    Default(2, "默认算法，完全随机，不保证任何概率均等"),
    Mersenne(3, "梅森旋转算法，著名的伪随机数算法，详情百度"),
    Bear(187099872, "熊哥的特殊算法，完全不是公平的，只有熊吉自己可以打开，仅做亲友团使用");

    private int typeId;
    private String info;

    AlgorithmTypes(int typeId, String info) {
        this.typeId = typeId;
        this.info = info;
    }

    /**
     * 根据code获取去value
     *
     * @param code
     * @return
     */
    public static AlgorithmTypes getValueByCode(int code) {
        for (AlgorithmTypes algorithmTypes : AlgorithmTypes.values()) {
            if (code == algorithmTypes.getTypeId()) {
                return algorithmTypes;
            }
        }
        throw new NullPointerException(stringFormatById("查找的参数值不存在:%s", code));
    }

    public int getTypeId() {
        return typeId;
    }

    public void setTypeId(int typeId) {
        this.typeId = typeId;
    }

    public String getInfo() {
        return info;
    }

    public void setInfo(String info) {
        this.info = info;
    }
}
